module.exports = {
  data() {
    return {
      defaultSearchParam: {}, // 默认的搜索参数
      searchParam: {} // 过滤的参数
    }
  },
  methods: {
    // 处理table插槽中返回的回调
    handlerActionClick(params) {
      if (!params) return
      const { cb, row } = params
      if (this[cb]) {
        // 只有函数存在才执行
        this[cb](row)
      } else {
        console.error(`function name : ${cb} is not defined, please check it`)
      }
    },
    // 处理滚动条
    updateTableScrollOpt() {
      const ref = this.$refs.table
      if (ref) {
        const updateScrollOpt = this.$refs.table.updateScrollOpt()
        this.$nextTick(updateScrollOpt)
      }
    },
    // 处理表格的加载状态
    loadingTable(v) {
      const ref = this.$refs.table
      if (ref) {
        this.$refs.table.settingLoading(v)
      }
    },
    // 搜索
    toSearch() {
      const formRef = this.$refs.form.formModel
      // console.log(formRef)
      Object.keys(formRef).forEach(key => {
        const v = formRef[key]
        v !== undefined ? this.searchParam[key] = v : delete this.searchParam[key]
      })
      this.initPagination() // 重置分页器
      this.initTableValue() // 重新请求数据
    },
    // 清空条件
    clearAll() {
      this.$refs.form.initOptions()
      this.initSearchParams() // 重置会默认的搜索参数
      this.toSearch()
    },
    // 清空勾选
    initSelectedRowIds(){
      if (this?.$refs?.table?.selectedRowIds.length) {
        this.$refs.table.selectedRowIds = []
      }    },
    // 重置搜索参数为默认搜索参数
    initSearchParams() {
      this.searchParam = { ...this.defaultSearchParam, auditStatus: this.auditStatus }
      this.defaultValue = { ...this.defaultSearchParam }
    },
    // 重置分页器
    initPagination() {
      this.customOtherOpt.pagination = {
        total: 0,
        current: 1,
        pageNum: 1,
        pageSize: 10
      }
      if(this.$refs.table) this.$refs.table.initPagination()
    },
  }
}